package IterableIterator;

import java.util.Iterator;

import TDALista.EmptyListException;
import TDALista.Position;
import TDALista.PositionList;

/**
 * Clase que modela un iterador de lista. </br>
 * El iterador se modela internamente con <i>punteros</i> a los elementos de lista original.</br>
 * Provee la funcionalidad de un iterador, realizando toda la operatoria sobre la ED original. </br>
 * <b>No asegura</b> un correcto funcionamiento si durante el proceso de iteración la lista es modificada.</br>
 * @author FJoaquin (federico.joaquin@cs.uns.edu.ar)
 *
 * @param <E> Tipo de dato de los elementos de la lista a iterar.
 */
public class IteradorListaSobreEdOriginal<E> implements Iterator<E>{
	
	private PositionList<E> lista;
	private Position<E> cursor;
	
	  /**
	   * Inicializa la ED interna considerando incialmente el primer elemento de la lista.
	   * @param lista Contiene los elementos a ser iterados.
	   */
	public IteradorListaSobreEdOriginal(PositionList<E> l){
		try {
			lista = l;
			if (lista != null && !lista.isEmpty())
				cursor = l.first();
		}catch (EmptyListException e) {
			cursor = null;
		}
	}
	
	@Override
	public boolean hasNext() {
		// COMPLETAR
		return false;
	}

	@Override
	public E next() { 
		// COMPLETAR 
		return null;
	}
}
